package com.marmot.cloud.framework.orm.jpa.comment.bean;

import org.hibernate.jpa.boot.spi.IntegratorProvider;
import org.springframework.boot.autoconfigure.orm.jpa.HibernatePropertiesCustomizer;

import java.util.Collections;
import java.util.Map;

/**
 * 自定义的 HibernatePropertiesCustomizer，用于自定义 Hibernate 的配置属性。
 */
public class HibernateProperties implements HibernatePropertiesCustomizer {

    /**
     * 自定义 Hibernate 的配置属性。
     *
     * @param hibernateProperties Hibernate 配置属性的 Map
     */
    @Override
    public void customize(Map<String, Object> hibernateProperties) {
        // 开启 Hibernate 使用 SQL 注释的功能
        hibernateProperties.put("hibernate.use_sql_comments", true);
        // 设置 IntegratorProvider，提供 CommentIntegrator 整合器
        hibernateProperties.put("hibernate.integrator_provider",
                (IntegratorProvider) () -> Collections.singletonList(CommentIntegrator.INSTANCE));
    }
}
